package fr.afcepf.al23.qualite.data;

import fr.afcepf.al23.qualite.entity.Utilisateur;

/**
 * Definition des methodes liees a la manipulation de l'entite {@link Utilisateur}.
 * @author stagiaires
 *
 */
public interface IDaoUtilisateur {
    /**
     * Methode permettant de verifier si un {@link Utilisateur} existe bien
     * dans l'application a l'aide de son mail et de son mot de passe.
     * @param mail le mail de l'{@link Utilisateur}.
     * @param mdp le mot de passe de l'{@link Utilisateur}.
     * @return
     * <code>
     *  <ul>
     *   <li>
     *    Un Utilisateur <strong>non null</strong>,
     *    s'il<br/>
     *    existe dans le systeme d'information
     *   </li>
     *  </ul>
     * </code>
     */
    Utilisateur seConnecter(String mail, String mdp);
    /**
     * Methode permettant de faire persister un
     * {@link Utilisateur} dans le systeme d'information.
     * @param util {@link Utilisateur} a enregistrer.
     * @return {@link Utilisateur} enregistre.
     * <ul>
     *  <li></li>
     * </ul>
     */
    Utilisateur enregistrer(Utilisateur util);
    /**
     * Methode permettant de verifier l'existence d'un
     * {@link Utilisateur} possedant cette adresse mail.
     * @param mail l'adresse mail a verifier.
     * @return
     * <ul>
     *  <li>true : elle existe dans le SI.</li>
     *  <li>false : elle n'existe pas dans le SI.</li>
     * </ul>
     */
    boolean verifierMail(String mail);
}
